home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 September / CHIP Eylül 1998.iso / Slackwar / docs / 3Dfx-HOWTO next >
Text File  |  1997-09-02  |  48KB  |  1,150 lines

  1.   The Linux 3Dfx HOWTO
  2.   Bernd Kreimeier (bk@gamers.org)
  3.   v1.03, 12 July 1997
  4.  
  5.   This document describes 3Dfx graphics accelerator chip support for
  6.   Linux. It lists the supported hardware, describes how to configure the
  7.   drivers, and answers frequently asked questions. The intent is to
  8.   bring new users up to speed more quickly and reduce the amount of
  9.   traffic in the Usenet news groups and mailing lists.
  10.  
  11.   1.  Introduction
  12.  
  13.   This is the Linux 3Dfx HOWTO document. It is intended as a quick
  14.   reference covering everything you need to know to install and
  15.   configure 3Dfx support under Linux. Frequently asked questions
  16.   regarding the 3Dfx support specifically, as well as questions about 3D
  17.   graphics under Linux in general are answered, and references are given
  18.   to some other sources of information on a variety of topics related to
  19.   computer generated, hardware accelerated 3D graphics.
  20.  
  21.   This information is only valid for Linux on the Intel platform.  Some
  22.   information may be applicable to other processor architectures, but I
  23.   have no first hand experience or information. It is only applicable to
  24.   boards based on 3Dfx technology, any other graphics accelerator
  25.   hardware is beyond the scope of this document.
  26.  
  27.   1.1.  Acknowledgments
  28.  
  29.   Much of this information found in this document has been provided by
  30.   the people involved in the Linux Glide port and the beta testing
  31.   process. Daryll Strauss did the port, Paul J. Metzger modified the
  32.   Mesa Voodoo driver (written by David Bucciarelli) for Linux, Brian
  33.   Paul integrated it with his famous Mesa library. With respect to
  34.   Voodoo Graphics (tm) accelerated Mesa, additional thanks has to go to
  35.   Henri Fousse and Charlie Wallace. The folks at 3Dfx, notably Gary
  36.   Sanders and Gary McTaggart, provided valuable input, as did Ross Q.
  37.   Smith of Quantum3D.
  38.  
  39.   Thanks to the SGML-Tools package (formerly known as Linuxdoc-SGML),
  40.   this HOWTO is available in several formats, all generated from a
  41.   common source file. For information on SGML-Tools see its homepage at
  42.   web.inter.NL.net/users/C.deGroot/sgmltools/.
  43.  
  44.   3Dfx, the 3Dfx Interactive logo, Voodoo Graphics (tm), and Voodoo Rush
  45.   (tm) are registered trademarks of 3Dfx Interactive, Inc.  Glide,
  46.   TexUS, Pixelfx and Texelfx are trademarks of 3Dfx Interactive, Inc.
  47.   OpenGL is a registered trademark of Silicon Graphics. Obsidian is a
  48.   trademark of Quantum3D.  Other product names are trademarks of the
  49.   respective holders, and are hereby considered properly acknowledged.
  50.  
  51.   1.2.  Revision History
  52.  
  53.      Version 1.03
  54.         First version for public release.
  55.  
  56.   1.3.  New versions of this document
  57.  
  58.   You will find the most recent version of this document at
  59.   www.gamers.org/dEngine/xf3D/.
  60.  
  61.   New versions of this document will be periodically posted to the
  62.   comp.os.linux.answers newsgroup. They will also be uploaded to various
  63.   anonymous ftp sites that archive such information including
  64.   ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/.
  65.  
  66.   Hypertext versions of this and other Linux HOWTOs are available on
  67.   many World-Wide-Web sites, including sunsite.unc.edu/mdw/mdw.html.
  68.   Most Linux CD-ROM distributions include the HOWTOs, often under the
  69.   /usr/doc/directory, and you can also buy printed copies from several
  70.   vendors.
  71.  
  72.   If you make a translation of this document into another language, let
  73.   me know and I'll include a reference to it here.
  74.  
  75.   1.4.  Feedback
  76.  
  77.   I rely on you, the reader, to make this HOWTO useful. If you have any
  78.   suggestions, corrections, or comments, please send them to me (
  79.   bk@gamers.org), and I will try to incorporate them in the next
  80.   revision.  Please add HOWTO 3Dfx to the Subject-line of the mail, so
  81.   procmail will dump it in the appropriate folder.
  82.  
  83.   Before sending bug reports or questions, please read all of the
  84.   information in this HOWTO, and send detailed information about the
  85.   problem.
  86.  
  87.   If you publish this document on a CD-ROM or in hardcopy form, a
  88.   complimentary copy would be appreciated. Mail me for my postal
  89.   address. Also consider making a donation to the Linux Documentation
  90.   Project to help support free documentation for Linux. Contact the
  91.   Linux HOWTO coordinator, Greg Hankins (gregh@sunsite.unc.edu), for
  92.   more information.
  93.  
  94.   1.5.  Distribution Policy
  95.  
  96.   Copyright (C) 1997 Bernd Kreimeier.
  97.  
  98.   This HOWTO is free documentation; you can redistribute it and/or
  99.   modify it under the terms of the GNU General Public License as
  100.   published by the Free Software Foundation; either version 2 of the
  101.   License, or (at your option) any later version.
  102.  
  103.   This document is distributed in the hope that it will be useful, but
  104.   without any warranty; without even the implied warranty of
  105.   merchantability or fitness for a particular purpose.  See the GNU
  106.   General Public License for more details.
  107.  
  108.   You can obtain a copy of the GNU General Public License by writing to
  109.   the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
  110.   USA.
  111.  
  112.   2.  Graphics Accelerator Technology
  113.  
  114.   2.1.  Basics
  115.  
  116.   This section gives a very cursory overview of computer graphics
  117.   accelerator technology, in order to help you understand the concepts
  118.   used later in the document. You should consult e.g.  a book on OpenGL
  119.   in order to learn more.
  120.  
  121.   Basically, 3D computer graphics often requires a lot of calculations
  122.   for each single pixel on the screen. This is especially true if the
  123.   application has to render a polygon world for many frames of an
  124.   interactive animation.  Even with low resolutions like 320x200, this
  125.   consumes more processing power than even the most powerful PC could
  126.   deliver.
  127.  
  128.   To overcome that bottleneck, several companies have designed,
  129.   manufactured and sold processors dedicated to operations needed for 3D
  130.   computer graphics. So far, virtually none of the boards manufactured
  131.   so far offered any Linux support. Fortunately, the manufacturer of the
  132.   Voodoo Graphics (tm) and Voodoo Rush (tm) chipsets, 3Dfx, decided to
  133.   support use of Voodoo Graphics (tm) based boards with Linux. The
  134.   purpose of this document is to describe the support currently
  135.   available.
  136.  
  137.   2.2.  Hardware configurations (add-on)
  138.  
  139.   Graphics accelerators come in different flavors: either as a separate
  140.   PCI board that is able to pass through the video signal of a (possibly
  141.   2D or video accelerated) VGA board, or as a PCI board that does both
  142.   VGA and 3D graphics (effectively replacing older VGA controllers).
  143.   The 3Dfx boards based on the Voodoo Graphics (tm) belong to the former
  144.   category. We will get into this again later.
  145.  
  146.   If there is no address conflict, any 3D accelerator board could be
  147.   present under Linux without interfering, but in order to access the
  148.   accelerator, you will need a driver.
  149.  
  150.   2.3.  Performance limitations
  151.  
  152.   2.3.1.  Fill bound
  153.  
  154.   Hardware accelerated graphics is performance bound for several
  155.   reasons. A typical bottleneck is fill rate: the total number of pixels
  156.   that the hardware could possibly do under optimal conditions, within a
  157.   given time interval - e.g. about 40 Mpixels/second.  Given a 640x480
  158.   screen resolution and zero overdraw, the hardware won't do more than
  159.   130 frames/second.
  160.  
  161.   The amount of overdraw depends on the actual depth complexity of the
  162.   scene (how many polygons would a ray through a pixel intersect) and
  163.   the efficiency of the visible surface determination algorithm used by
  164.   the application. Drawing each pixel twice means 65 frames/second, an
  165.   overdraw of 2 (drawing each pixel thrice) gets you down to about 43
  166.   frames/second.
  167.  
  168.   2.3.2.  Missing refresh
  169.  
  170.   Next, you will probably render with double buffering, swapping back
  171.   and front buffer as soon as the frame is completed. Here the refresh
  172.   rate of the display comes into play: you will only switch buffers
  173.   during refresh. If your application misses a 60Hz refresh on every
  174.   single frame, your effective frame rate will drop to 30Hz (every
  175.   second refresh).  Missing two refreshes gets you down to 20Hz.
  176.  
  177.   2.3.3.  Primitive bound
  178.  
  179.   If the scene is not very detailed (only a few polygons, but those very
  180.   large, with lots of overdraw), your application will probably be fill
  181.   bound - it is possible to throw more primitives (lines, triangles,
  182.   polygons) at the hardware, but the pixel pipeline can't go any faster
  183.   anyway.
  184.  
  185.   However, if your application insists on rendering a lot of small
  186.   triangles or polygons, you might end up primitive bound. Given a PCI
  187.   bandwidth of 33MHz times 32bit, or 132 MB/sec, and a per-triangle
  188.   dataset of 3 vertices (9 coordinates, 16bit each, plus 3 colors, 24bit
  189.   each), and a frame rate of 20Hz, you will transfer about 240K
  190.   triangles/frame - not counting texture data, disk access, and other
  191.   operations.
  192.  
  193.   2.4.  Hardware accelerated features
  194.  
  195.   The rendering operations usually supported by usefull hardware
  196.   accelerators are:
  197.  
  198.   ╖  Perspective correct texture mapping
  199.  
  200.   ╖  Alpha-blending, Fog
  201.  
  202.   ╖  Anti-aliasing
  203.  
  204.   ╖  Bi-linear and advanced texture filtering
  205.  
  206.   ╖  Level of detail (LOD) MIP mapping
  207.  
  208.   ╖  Sub-pixel correction
  209.  
  210.   ╖  Polygonal-based Gouraud shading and texture modulation
  211.  
  212.   ╖  Double buffering
  213.  
  214.   ╖  Depth buffering, stencil buffer
  215.  
  216.      Usually, hardware allows increased screen resolution (software-only
  217.      rendering being limited to 320x200 pixels for interactive frame
  218.      rates), advanced filtering, true alpha channel translucency, and
  219.      use true color 16bpp or 24bpp frame buffers.
  220.  
  221.   2.5.  A bit of Voodoo Graphics (tm) architecture
  222.  
  223.   Usually, accessing texture memory and frame/depth buffer is a major
  224.   bottleneck. For each pixel on the screen, there are at least one
  225.   (nearest), four (bi-linear), or eight (tri-linear mipmapped) read
  226.   accesses to texture memory, plus a read/write to the depth buffer, and
  227.   a read/write to frame buffer memory.
  228.  
  229.   The Voodoo Graphics (tm) architecture separates texture memory from
  230.   frame/depth buffer memory by introducing two separate rendering
  231.   stages, with two corresponding units (pixelfx and texelfx), each
  232.   having a separate memory interface to dedicated memory. This gives an
  233.   above-average fill rate, paid for restrictions in memory management
  234.   (e.g. unused framebuffer memory can not be used for texture caching).
  235.  
  236.   Moreover, a Voodoo Graphics (tm) could use two TMU's (texture
  237.   management or texelfx units), and finally, two Voodoo Graphics (tm)
  238.   could be combined accessing the same RAMDAC with a mechanism called
  239.   Scan-Line Interleaving (SLI). SLI essentially means that each pixelfx
  240.   unit effectively provides only every second scanline, which decreases
  241.   bandwidth impact on each pixelfx' framebuffer memory.
  242.  
  243.   3.  Installation
  244.  
  245.   Configuring Linux to support 3Dfx accelerators involves the following
  246.   steps:
  247.  
  248.   1. Installing the board.
  249.  
  250.   2. Installing the Glide distribution.
  251.  
  252.   3. Compiling, linking and/or running the application.
  253.  
  254.   The next sections will cover each of these steps in detail.
  255.  
  256.   3.1.  Installing the board
  257.  
  258.   Follow the manufacturer's instructions for installing the hardware or
  259.   have your dealer perform the installation.  It should not be necessary
  260.   to select settings for IRQ, DMA channel, either Plug&Pray (tm) or
  261.   factory defaults should work. The add-on boards described here are
  262.   memory mapped devices and do not use IRQ's. The only kind of conflict
  263.   to avoid is memory overlap with other devices.
  264.  
  265.   As 3Dfx does not develop or sell any boards, do not contact them on
  266.   any problems.
  267.  
  268.   3.1.1.  Troubleshooting the hardware installation
  269.  
  270.   To check the installation and the memory mapping, do cat /proc/pci.
  271.   The output should contain something like
  272.  
  273.   ______________________________________________________________________
  274.     Bus  0, device  12, function  0:
  275.       VGA compatible controller: S3 Inc. Vision 968 (rev 0).
  276.         Medium devsel.  IRQ 11.
  277.         Non-prefetchable 32 bit memory at 0xf4000000.
  278.  
  279.     Bus  0, device   9, function  0:
  280.       Multimedia video controller: Unknown vendor Unknown device (rev 2).
  281.         Vendor id=121a. Device id=1.
  282.         Fast devsel.  Fast back-to-back capable.
  283.         Prefetchable 32 bit memory at 0xfb000000.
  284.   ______________________________________________________________________
  285.  
  286.   for a Diamond Monster 3D used with a Diamond Stealth-64. Additionally
  287.   a cat /proc/cpuinfo /proc/meminfo might be helpfull for tracking down
  288.   conflicts and/or submitting a bug report.
  289.  
  290.   With current kernels, you will probably get a boot warning like
  291.  
  292.   ______________________________________________________________________
  293.   Jun 12 12:31:52 hal kernel: Warning : Unknown PCI device (121a:1).
  294.   Please read include/linux/pci.h
  295.   ______________________________________________________________________
  296.  
  297.   which could be safely ignored. If you happen to have a board not very
  298.   common, or have encountered a new revision, you should take the time
  299.   to follow the advice in /usr/include/linux/pci.h and send all neces¡
  300.   sary information to linux-pcisupport@cao-vlsi.ibp.fr.
  301.  
  302.   If you experience any problems with the board, you should try to
  303.   verify that DOS and/or Win95 or NT support works. You will probably
  304.   not receive any useful response from a board manufacturer on a bug
  305.   report or request regarding Linux. Having dealt with the Diamond
  306.   support e-mail system, I would not expect useful responses for other
  307.   operating systems either.
  308.  
  309.   3.1.2.  Configuring the kernel
  310.  
  311.   There is no kernel configuration necessary, as long as PCI support is
  312.   enabled.  The Linux Kernel HOWTO
  313.   <http://sunsite.unc.edu/mdw/HOWTO/Kernel-HOWTO.html> should be
  314.   consulted for the details of building a kernel.
  315.  
  316.   3.1.3.  Configuring devices
  317.  
  318.   The current drivers to not (yet) require any special devices.  This is
  319.   different from other driver developments (e.g. the sound drivers,
  320.   where you will find a /dev/dsp and /dev/audio). The driver uses the
  321.   /dev/mem device which should always be available. In consequence, you
  322.   need to use setuid or root privileges to access the accelerator board.
  323.  
  324.   3.2.  Setting up the Displays
  325.  
  326.   There are two possible setups with add-on boards. You could either
  327.   pass-through the video signal from your regular VGA board via the
  328.   accelerator board to the display, or you could use two displays at the
  329.   same time.  Rely to the manual provided by the board manufacturer for
  330.   details. Both configurations have been tried with the Monster 3D
  331.   board.
  332.  
  333.   3.2.1.  Single screen display solution
  334.  
  335.   This configuration allows you to check basic operations of the
  336.   accelerator board - if the video signal is not transmitted to the
  337.   display, hardware failure is possible.
  338.  
  339.   Beware that the video output signal might deteoriate significantly if
  340.   passed through the video board. To a degree, this is inevitable.
  341.   However, reviews have complained about below-average of the cables
  342.   provided e.g. with the Monster 3D, and judging from the one I tested,
  343.   this has not changed.
  344.  
  345.   There are other pitfalls in single screen configurations.  Switching
  346.   from the VGA display mode to the accelerated display mode will change
  347.   resolution and refresh rate as well, even if you are using 640x480
  348.   e.g. with X11, too.  Moreover, if you are running X11, your
  349.   application is responsible for demanding all keyboard and mouse
  350.   events, or you might get stuck because of changed scope and exposure
  351.   on the X11 display (that is effectively invisible when the accelerated
  352.   mode is used) You could use SVGA console mode instead of X11.
  353.  
  354.   If you are going to use a single screen configuration and switch modes
  355.   often, remember that your monitor hardware might not enjoy this kind
  356.   of use.
  357.  
  358.   3.2.2.  Dual screen display solution
  359.  
  360.   The accelerator board does not need the VGA input signal.  Instead of
  361.   routing the common video output through the accelerator board, you
  362.   could attach a second monitor to its output, and use both at the same
  363.   time. This solution is more expensive, but gives best results, as your
  364.   main display will still be hires and without the signal quality losses
  365.   involved in a pass-through solution. In addition, you could use X11
  366.   and the accelerated full screen display in parallel, for development
  367.   and debugging.
  368.  
  369.   A common problem is that the accelerator board will not provide any
  370.   video signal when not used. In consequence, each time the graphics
  371.   application terminates, the hardware screensave/powersave might kick
  372.   in depending on your monitors configuration. Again, your hardware
  373.   might not enjoy being treated like this. You should use
  374.  
  375.   ______________________________________________________________________
  376.   setenv SST_DUALSCREEN 1
  377.   ______________________________________________________________________
  378.  
  379.   to force continued video output in this setup.
  380.  
  381.   3.3.  Installing the Glide distribution
  382.  
  383.   The Glide driver and library are provided as a single compressed
  384.   archive. Use tar and gzip to unpack, and follow the instructions in
  385.   the README and INSTALL accompanying the distribution.  Read the
  386.   install script and run it. Installation puts everything in
  387.   /usr/local/glide/include,lib,bin and sets the ld.conf to look there.
  388.   Where it installs and setting ld.conf are independent actions. If you
  389.   skip the ld.conf step then you need the LD_LIBRARY_PATH.
  390.  
  391.   You will need to install the header files in a location available at
  392.   compile time, if you want to compile your own graphics applications.
  393.   If you do not want to use the installation as above (i.e. you insist
  394.   on a different location), make sure that any application could access
  395.   the shared libary at runtime, or you will get a response like can't
  396.   load library 'libglide.so'.
  397.  
  398.   3.3.1.  Using the detect program
  399.  
  400.   There is a bin/detect program in the distribution (the source is not
  401.   available). You have to run it as root, and you will get something
  402.   like
  403.  
  404.   ______________________________________________________________________
  405.   slot  vendorId   devId   baseAddr0  command  description
  406.   ----  --------  ------  ----------  -------  -----------
  407.     00    0x8086  0x122d  0x00000000   0x0006  Intel:430FX (Triton)
  408.     07    0x8086  0x122e  0x00000000   0x0007  Intel:ISA bridge
  409.     09    0x121a  0x0001  0xfb000008   0x0002  3Dfx:video multimedia adapter
  410.     10    0x1000  0x0001  0x0000e401   0x0007  ???:SCSI bus controller
  411.     11    0x9004  0x8178  0x0000e001   0x0017  Adaptec:SCSI bus controller
  412.     12    0x5333  0x88f0  0xf4000000   0x0083  S3:VGA-compatible display co
  413.   ______________________________________________________________________
  414.  
  415.   as a result. If you do not have root privileges, the program will bail
  416.   out with
  417.  
  418.   ______________________________________________________________________
  419.   Permission denied: Failed to change I/O privilege. Are you root?
  420.   ______________________________________________________________________
  421.  
  422.   output might come handy for a bug report as well.
  423.  
  424.   3.3.2.  Using the test programs
  425.  
  426.   Within the Glide distribution, you will find a folder with test
  427.   programs. Note that these test programs are under 3Dfx copyright, and
  428.   are legally available for use only if you have purchased a board with
  429.   a 3Dfx chipset. See the LICENSE file in the distribution, or their web
  430.   site www.3dfx.com for details.
  431.  
  432.   It is recommend to compile and link the test programs even if there
  433.   happen to be binaries in the distribution. Note that some of the
  434.   programs will requires some files like alpha.3df from the distribution
  435.   to be available in the same folder.  All test programs use the 640x480
  436.   screen resolution. Some will request a veriety of single character
  437.   inputs, others will just state Press A Key To Begin Test. Beware of
  438.   loss of input scope if running X11 on the same screen at the same
  439.   time.
  440.  
  441.   See the README.test for a list of programs, and other details.
  442.  
  443.   4.  Answers To Frequently Asked Questions
  444.  
  445.   The following section answers some of the questions that (will) have
  446.   been asked on the Usenet news groups and mailing lists. The FAQ has
  447.   been subdivided into several parts for convenience, namely
  448.  
  449.   ╖  FAQ: Requirements?
  450.  
  451.   ╖  FAQ: Voodoo Graphics (tm)? 3Dfx?
  452.  
  453.   ╖  FAQ: Glide?
  454.  
  455.   ╖  FAQ: Glide and SVGA?
  456.  
  457.   ╖  FAQ: Glide and XFree86?
  458.  
  459.   ╖  FAQ: Glide versus OpenGL/Mesa?
  460.  
  461.   ╖  FAQ: But Quake?
  462.  
  463.   ╖  FAQ: Troubleshooting?
  464.  
  465.      Each section lists several questions and answers, which will
  466.      hopefully address most problems.
  467.  
  468.   5.  FAQ: Requirements?
  469.  
  470.   5.1.  What are the system requirements?
  471.  
  472.   A Linux PC, PCI 2.1 compliant, a monitor capable of 640x480, and a 3D
  473.   accelerator board based on the 3Dfx Voodoo Graphics (tm). It will work
  474.   on a P5 or P6, with or without MMX.
  475.  
  476.   5.2.  Does it work with Linux-Alpha?
  477.  
  478.   There is currently no Linux Glide distribution available for any
  479.   platform besides i586. As the Glide sources are not available for
  480.   distribution, you will have to wait for the binary. Quantum3D has DEC
  481.   Alpha support announced for 2H97. Please contact Daryll Strauss if you
  482.   are interested in supporting this.
  483.  
  484.   5.3.  Which chipsets are supported?
  485.  
  486.   Currently, the most recent revision of the  3Dfx Voodoo Graphics (tm)
  487.   chipset is supported under Linux. The Voodoo Rush (tm) chipset is not
  488.   yet supported.
  489.  
  490.   5.4.  Which boards are supported?
  491.  
  492.   This section lists the boards that are currently known to work under
  493.   Linux. There are no officially supported boards, as 3Dfx does not sell
  494.   any boards. The information here is based on the latest Linux kernels,
  495.   at time of writing, and lists the boards that have been tested, plus
  496.   boards that might work, but have yet to be checked.
  497.  
  498.   It is important to recognize that Linux support for a given board does
  499.   not only require a driver for the 3D accelerator component. If a board
  500.   features its own VGA core as well, support by either Linux SVGA or
  501.   XFree86 is required as well.  Currently, an add-on solution is
  502.   recommended, as it allows you to choose a regular graphics board well
  503.   supported for Linux. There are other aspects discussed below.
  504.  
  505.   The following configurations have been tested:
  506.  
  507.   ╖  Diamond Monster 3D with Diamond Stealth 64 3240XL
  508.  
  509.   ╖  Orchid  Righteous 3D with S3-968 based graphics card
  510.  
  511.   ╖  Quantum3D Obsidian 50-4220
  512.  
  513.      These are the existing Obsidian board configurations, most of them
  514.      have not been tested yet, but should work as well.
  515.  
  516.      Obsidian 50-2200
  517.         1 pixelfx with 2MB frame buffer memory, 1 texelfx with 2MB
  518.         texture memory
  519.  
  520.      Obsidian 50-2400
  521.         1 pixelfx with 2MB frame buffer memory, 1 texelfx with 4MB
  522.         texture memory
  523.  
  524.      Obsidian 50-4400
  525.         1 pixelfx with 4MB frame buffer memory, 1 texelfx with 4MB
  526.         texture memory
  527.  
  528.      Obsidian 50-2220
  529.         1 pixelfx with 2MB frame buffer memory, 2 texelfx chips with 2MB
  530.         texture memory, each, for a total of 4MB texture memory
  531.  
  532.      Obsidian 50-4220
  533.         1 pixelfx with 4MB frame buffer memory, 2 texelfx chips with 2MB
  534.         texture memory, each, for a total of 4MB texture memory.  This
  535.         configuration was the original "Obsidian Pro" which has been
  536.         used for the 3DS Plug-in Project (now done with Datapath
  537.         Realistorm). Datapath used to call this "Pro VR".
  538.  
  539.      Obsidian 50-4440
  540.         1 pixelfx with 4MB frame buffer memory, 2 texelfx chips with 4MB
  541.         texture memory, each, for a total of 8MB texture memory.  This
  542.         configuration is now the intended target for the 3DS Plug-in
  543.         Project (now done with Datapath Realistorm).
  544.  
  545.      Obsidian 50-2440
  546.         1 pixelfx with 2MB frame buffer memory, 2 texelfx chips with 4MB
  547.         texture memory, each, for a total of 8MB texture memory.
  548.  
  549.      Obsidian 100-2440
  550.         aka 2440-SLI, aka XS-100, or just "SLI".
  551.  
  552.         Two PCI boards, each with 1 pixelfx with 2MB frame buffer memory
  553.         and 2 texelfx chips each with 4MB texture memory, each, for a
  554.         total of 8MB texture memory per board. Texture have to be stored
  555.         on both boards, so this does not equal 16MB texture memory.
  556.         Video output is scan line interleaved for two times the standard
  557.         fill rate.
  558.  
  559.      The bundling deal with additional software for Autodesk 3DS MAX is
  560.      dubbed Obsidian 3DS, which originally used a 50-4220 and now comes
  561.      with a 50-4440 board.
  562.  
  563.   The following boards have not yet been tested:
  564.  
  565.   ╖  Deltron RealVision Flash 3D
  566.  
  567.      With the current Glide 2.4, the following Voodoo Rush (tm) based
  568.      boards are not expected to work with Linux:
  569.  
  570.   ╖  Hercules Stingray 128/3D
  571.  
  572.   ╖  Intergraph Intense 3D Rush
  573.  
  574.      As the Voodoo Rush (tm) chipset supports operations within a
  575.      window, it is meant for use on accelerated VGA boards, which in
  576.      turn require XFree86 oder Linux SVGA support not yet available.
  577.  
  578.   Boards that are not based on 3Dfx chipsets (e.g. manufactured by S3,
  579.   Matrox, 3Dlabs, Videologic) do not work with the 3Dfx drivers and are
  580.   beyond the scope of this document.
  581.  
  582.   5.5.  Is the Hercules Stingray 128/3D supported?
  583.  
  584.   In this board, the 2D accelerator is mounted on a PCI card, and the
  585.   Voodoo Rush (tm) chipset is mounted on a daughterboard.  Currently,
  586.   this board is neither supported by Linux Glide, nor by XFree86
  587.   accelerated servers. Reportedly, the XFree86 SVGA server works,
  588.   according to a posting on the Mesa mailing list.  It supports 8, 16
  589.   and 32 bpp.
  590.  
  591.   ______________________________________________________________________
  592.   # device section settings
  593.   Chipset "AT24"
  594.   Videoram 4032
  595.  
  596.   # videomodes tested by Oliver Schaertel
  597.   #  25.18  28.32  for 640 x 480   (70hz)
  598.   #  61.60         for 1024 x 786  (60hz)
  599.   #  120           for 1280 x 1024 (66hz)
  600.   ______________________________________________________________________
  601.  
  602.   There is currently no Voodoo Rush (tm) support. It might be worth a
  603.   try, but as no test boards have been provided by the manufacturers,
  604.   you are in your own.
  605.  
  606.   Regarding the VGA component tied to the Voodoo Rush (tm) on this
  607.   board, it is a Alliance Semiconductor's ProMotion-AT3D multimedia
  608.   accelerator.  XFree86's support for AT3D/AT24 will not be accelerated
  609.   prior to XFree86 4.0, which is quite some time away.
  610.  
  611.   5.6.  Is the Intergraph Intense Rush supported?
  612.  
  613.   Despite the fact that this board will be a single board integrated
  614.   solution, it is essentially the same chipset combo (AT3D, Voodoo Rush
  615.   (tm)), thus all disclaimers made above regarding the Hercules
  616.   Stringray apply here as well. According to David E. Anderson from
  617.   Intergraph, they will not be providing support for Linux at this time.
  618.  
  619.   6.  FAQ: Voodoo Graphics (tm)? 3Dfx?
  620.  
  621.   6.1.  Who is 3Dfx?
  622.  
  623.   3Dfx is a San Jose based manufacturer of 3D graphics accelerator
  624.   hardware for arcade games, game consoles, and PC boards.  Their
  625.   official website is www.3dfx.com. 3Dfx does not sell any boards, but
  626.   there is an associcated company, Quantum3D. See their home page at
  627.   www.quantum3d.com for additional information.
  628.  
  629.   6.2.  What is the Voodoo Graphics (tm)?
  630.  
  631.   The Voodoo Graphics (tm) is a chipset manufactured by 3Dfx. It is used
  632.   in hardware acceleration boards for the PC.  See the HOWTO section on
  633.   supported hardware.
  634.  
  635.   There is a newer chipset, the Voodoo Rush (tm), that is currently not
  636.   supported with Linux.
  637.  
  638.   6.3.  Where could I get additional info on Voodoo Graphics (tm)?
  639.  
  640.   There is a FAQ by 3Dfx, which should be available at their web site.
  641.   You will find retail information at the following locations:
  642.  
  643.   ╖  www.3dfx.com
  644.  
  645.   ╖  www.quantum3d.com
  646.  
  647.   ╖  www.orchid.com
  648.  
  649.   ╖  www.diamondmm.com
  650.  
  651.   ╖  www.deltrontech.com
  652.  
  653.   7.  FAQ: Glide? TexUS?
  654.  
  655.   7.1.  What is Glide anyway?
  656.  
  657.   Glide is a proprietary API plus drivers to access 3D graphics
  658.   accelerator hardware based on chipsets manufactured by 3Dfx. Glide has
  659.   been developed and implemented for DOS, Windows, and Macintosh, and
  660.   has been ported to Linux by Daryll Strauss.
  661.  
  662.   7.2.  What is TexUS?
  663.  
  664.   In the distribution is a libtexus.so, which is the 3Dfx Interactive
  665.   Texture Utility Software.  It is an image processing libary and
  666.   utility program for preparing images for use with the 3Dfx Interactive
  667.   Glide library. Features of TexUS include file format conversion,
  668.   MIPmap creation, and support for 3Dfx Interactive Narrow Channel
  669.   Compression textures.
  670.  
  671.   The TexUS utility program texus reads images in several popular
  672.   formats (TGA, PPM, RGT), generates MIPmaps, and writes the images as
  673.   3Dfx Interactive textures files (see e.g. alpha.3df, as found in the
  674.   distribution) or as an image file for inspection. For details on the
  675.   parameters for texus, and the API, see the TexUS documentation.
  676.  
  677.   7.3.  Is Glide freeware?
  678.  
  679.   Nope. Glide is neither GPL'ed nor subject to any other public license.
  680.   See LICENSE in the distribution for any details. Glide is provided as
  681.   binary only, and you should neither use nor distribute any files but
  682.   the ones released to the public, if you have not signed an NDA. The
  683.   Glide distribution including the test program sources are copyrighted
  684.   by 3Dfx.
  685.  
  686.   The same is true for all the sources in the Glide distribution. In the
  687.   words of 3Dfx: These are not public domain, but they can be freely
  688.   distributed to owners of 3Dfx products only.  No card, No code!
  689.  
  690.   7.4.  Is the Glide source available?
  691.  
  692.   Nope. The Glide source is made available only based on a special
  693.   agreement and NDA with 3Dfx.
  694.  
  695.   7.5.  Is Linux Glide supported?
  696.  
  697.   Currently, Linux Glide is unsupported. Basically, it is provided under
  698.   the same disclaimers as the GLQuake DLL.
  699.  
  700.   However, 3Dfx definitely wants to provide as much support as possible,
  701.   and is in the process of setting up some prerequisites. For the time
  702.   being, you will have to rely on the 3Dfx newsgroup (see below).
  703.  
  704.   In addition, the Quantum3D web page claims that Linux support (for
  705.   Obsidian) is planned for both Intel and AXP architecture systems in
  706.   2H97.
  707.  
  708.   7.6.  Where could I post Glide questions?
  709.  
  710.   There are newsgroups currently available only on the NNTP server
  711.   news.3dfx.com run by 3Dfx.  This USENET groups are dedicated to 3Dfx
  712.   and Glide in general, and will mainly provide assistance for DOS,
  713.   Win95, and NT. The current list is:
  714.  
  715.   ______________________________________________________________________
  716.   3dfx.d3d.drivers
  717.   3dfx.events
  718.   3dfx.game.titles
  719.   3dfx.games.glquake
  720.   3dfx.glide
  721.   3dfx.glide.linux
  722.   3dfx.oem.products.diamond.monster3d
  723.   3dfx.oem.products.hercules.stingray128-3d
  724.   3dfx.oem.products.orchid.righteous3d
  725.   3dfx.oem.products.quantum3d.obsidian
  726.   3dfx.oem.products.realvision.flash3d
  727.   3dfx.products
  728.   3dfx.test
  729.   ______________________________________________________________________
  730.  
  731.   Please use news.3dfx.com/3dfx.glide.linux for all Lnux Glide related
  732.   questions.
  733.  
  734.   A mailing list dedicated to Linux Glide is in preparation (ETA in late
  735.   august). Send mail to majordomo@gamers.org, no subject, body of the
  736.   message info linux-3dfx to get information about the posting
  737.   guidelines, the hypermail archive and how to subscribe to the list or
  738.   the digest when available.
  739.  
  740.   7.7.  Where to send bug reports?
  741.  
  742.   Currently, you should rely on the newsgroup (see above), that is
  743.   news.3dfx.com/3dfx.glide.linux.  There is no official support e-mail
  744.   set up yet.  For questions not specific to Linux Glide, make sure to
  745.   use the other newsgroups.
  746.  
  747.   7.8.  Who is maintaining it?
  748.  
  749.   3Dfx will appoint an official maintainer soon.  Currently, inofficial
  750.   maintainer of the Linux Glide port is Daryll Strauss. Please post bug
  751.   reports in the newsgroup (above). If you are confident that you found
  752.   a bug not previously reported, please mail to Daryll at
  753.   daryll@harlot.rb.ca.us
  754.  
  755.   7.9.  How can I contribute to Linux Glide?
  756.  
  757.   You could submit precise bug reports. Providing sample programs to be
  758.   included in the distribution is another possibility. A major
  759.   contribution would be adding code to the Glide based Mesa Voodoo
  760.   driver source.  See section on Mesa Voodoo below.
  761.  
  762.   7.10.  Do I have to use Glide?
  763.  
  764.   Yes. As of now, there is no other Voodoo Graphics (tm) driver
  765.   available for Linux.
  766.  
  767.   7.11.  Should I program using the Glide API?
  768.  
  769.   That depends on the application you are heading for.  Glide is a
  770.   proprietary API that is partly similar to OpenGL or Mesa, partly
  771.   contains features only available as EXTensions to some OpenGL
  772.   implementations, and partly contains features not available anywhere
  773.   but within Glide.
  774.  
  775.   If you want to use the OpenGL API, you will need Mesa (see below).
  776.   Mesa, namely the Mesa Voodoo driver, offers an API resembling the well
  777.   documented and widely used OpenGL API. However, the Mesa Voodoo driver
  778.   is in early alpha, and you will have to accept performance losses and
  779.   lack of support for some features.
  780.  
  781.   In summary, the decision is up to you - if you are heading for maximum
  782.   performance while accepting potential problems with porting to
  783.   non-3Dfx hardware, Glide is not a bad choice. If you care about
  784.   maintenance, OpenGL might be the best bet in the long run.
  785.  
  786.   7.12.  What is the current version?
  787.  
  788.   The version of Linux Glide to be released to the public is 2.4, as is
  789.   the next release of Glide for DOS/Windows.
  790.  
  791.   Note that this HOWTO has been written based on Linux Glide 2.3.1, as
  792.   Glide 2.4 has not been released, and the Linux Glide 2.4 port as not
  793.   been finished yet. As the API did not change, and as there are no
  794.   changes planned for the Linux Glide distribution, this document should
  795.   still address the most common problems.
  796.  
  797.   7.13.  Is Linux Glide identical to DOS/Windows Glide?
  798.  
  799.   The version of Linux Glide to be publicly released will be 2.4,
  800.   following the release of DOS/Windows Glide 2.4. API and implementation
  801.   are supposed to be identical.
  802.  
  803.   Glide 2.2 has been ported to Linux in April 1997.  The port of Glide
  804.   2.3.1 has been done in June 1997.  Both lacked a key optimization for
  805.   triangle setup, which will be included in the public Linux Glide 2.4
  806.   release. The previous ports have never been publicly available, and
  807.   have been used for beta tests only.
  808.  
  809.   7.14.  Where to I get information on Glide?
  810.  
  811.   There is exhaustive information available from 3Dfx. You could
  812.   download it from their home page at
  813.   www.3dfx.com/software/download_glide.html.  These are for free,
  814.   presuming you bought a 3Dfx hardware based board. Please read the
  815.   licensing regulations.
  816.  
  817.   Basically, you should look for some of the following:
  818.  
  819.   ╖  Glide Release Notes
  820.  
  821.   ╖  Glide Programming Guide
  822.  
  823.   ╖  Glide Reference Manual
  824.  
  825.   ╖  Glide Porting Guide
  826.  
  827.   ╖  TexUs Texture Utility Software
  828.  
  829.   ╖  ATB Release Notes
  830.  
  831.   ╖  Installing and Using the Obsidian
  832.  
  833.      These are available as Microsoft Word documents, and part of the
  834.      Windows Glide distribution, i.e.  the self-extracting archive file.
  835.      Postscript copies for separate download should be available at
  836.      www.3dfx.com as well. Note that the release numbers are not always
  837.      in sync with those of Glide.
  838.  
  839.   7.15.  Where to get some Glide demos?
  840.  
  841.   You will find demo sources for Glide within the distribution (test
  842.   programs), and on the 3Dfx home page. The problem with the latter is
  843.   that some require ATB. To port these demos to Linux, the event
  844.   handling has to be completely rewritten.
  845.  
  846.   In addition, you might find useful some of the OpenGL demo sources
  847.   accompanying Mesa and GLUT. While the Glide API is different from the
  848.   OpenGL API, they target the same hardware rendering pipeline.
  849.  
  850.   8.  FAQ: Glide and SVGA?
  851.  
  852.   You should have no problems running Glide based applications either
  853.   single or dual screen using VGA modes. It might be a good idea to set
  854.   up the 640x480 resolution in the SVGA modes, too, if you are using a
  855.   single screen setup.
  856.  
  857.   9.  FAQ: Glide and XFree86?
  858.  
  859.   9.1.  Does it run with XFree86?
  860.  
  861.   Basically, the Voodoo Graphics (tm) hardware does not care about X.
  862.   The X server will not even notice that the video signal generated by
  863.   the VGA hardware does not reach the display in single screen
  864.   configurations. If your application is not written X aware, Glide
  865.   switching to full screen mode might cause problems (see
  866.   troubleshooting section). If you do not want the overhead of writing
  867.   an X11-aware application, you might want to use SVGA console mode
  868.   instead.
  869.  
  870.   So yes, it does run with XFree86, but no, it is not cooperating if you
  871.   don't write your application accordingly.
  872.  
  873.   9.2.  Does it only run full screen?
  874.  
  875.   See above. The Voodoo Graphics (tm) hardware is not window environment
  876.   aware, neither is Linux Glide.
  877.  
  878.   9.3.  What about GLX for XFree86?
  879.  
  880.   There are a couple of problems.
  881.  
  882.   The currently supported Voodoo Graphics (tm) hardware and the
  883.   available revision of Linux Glide are full screen only, and not set up
  884.   to share a framebuffer with a window environment. Thus GLX or other
  885.   integration with X11 is not yet possible.
  886.  
  887.   The Voodoo Rush (tm) might be capable of cooperating with XFree86
  888.   (that is, an SVGA compliant board will work with the XFree86 SVGA
  889.   server), but it is not yet supported by Linux Glide, nor do S3 or
  890.   other XFree86 servers support these boards yet.
  891.  
  892.   In addition, GLX is tied to OpenGL or, in the Linux case, to Mesa.
  893.   The XFree86 team is currently working on integrating Mesa with their X
  894.   Server. GLX is in beta, XFree86 3.3 has the hooks for GLX.  See Steve
  895.   Parker's GLX pages at www.cs.utah.edu/~sparker/xfree86-3d/ for the
  896.   most recent information.  Currently, Mesa still uses its GLX emulation
  897.   with Linux.
  898.  
  899.   10.  FAQ: Glide versus OpenGL/Mesa?
  900.  
  901.   10.1.  Is Glide OpenGL?
  902.  
  903.   No, Glide is a proprietary 3Dfx API which several features specific to
  904.   the Voodoo Graphics (tm) and Voodoo Rush (tm). A 3Dfx OpenGL is in
  905.   preparation (see below). Several Glide features would require
  906.   EXTensions to OpenGL, some of which already found in other
  907.   implementations (e.g. paletted textures).
  908.  
  909.   The closest thing to a hardware accelerated Linux OpenGL you could
  910.   currently get is Brian Paul's Mesa along with David Bucciarelli's Mesa
  911.   Voodoo driver (see below).
  912.  
  913.   10.2.  Does Mesa work with 3Dfx?
  914.  
  915.   As of Mesa 2.3 Beta3, Mesa works with Linux Glide 2.2, similar to Mesa
  916.   with Glide for DOS/Windows.  There are patches to Mesa 2.3b3 for Linux
  917.   Glide 2.3.1.  Later versions of Mesa will work with Linux Glide 2.4;
  918.   as the API did not change, the patches to Mesa-2.3b3 might be
  919.   sufficient. The Glide distribution is not part of the Mesa
  920.   distribution.
  921.  
  922.   You will need to get the Mesa library archive from the
  923.   iris.ssec.wisc.edu FTP site.
  924.  
  925.   10.3.  Where to get additional information on OpenGL?
  926.  
  927.   Use Mark Kilgard's Gateway to OpenGL Info at
  928.   reality.sgi.com/mjk_asd/opengl-links.html, and proceed from there.
  929.  
  930.   10.4.  Where to get info on Mesa?
  931.  
  932.   The Mesa home page is at www.ssec.wisc.edu/~brianp/Mesa.html.  There
  933.   is an archive of the Mesa mailing list.  at www.iqm.unicamp.br/mesa/.
  934.   This list is not specific to 3Dfx and Glide, but if you are interested
  935.   in using 3Dfx hardware to accelerate Mesa, it is a good place to
  936.   start.
  937.  
  938.   10.5.  Where to get information on Mesa Voodoo?
  939.  
  940.   For latest information on the Mesa Voodoo driver maintained by David
  941.   Bucciarelli tech.hmw@plus.it see the home page at www-
  942.   hmw.caribel.pisa.it/fxmesa/.
  943.  
  944.   10.6.  Is there a commercial OpenGL for Linux and 3Dfx?
  945.  
  946.   3Dfx has publicly announced an OpenGL implementation for Windows for
  947.   this year (2H97). It is not known whether this will be available for
  948.   Linux as well.
  949.  
  950.   As for third party commercial OpenGL, I am aware of three products:
  951.  
  952.   ╖  MetroLink MetroOpenGL
  953.  
  954.   ╖  XInside OpenGL
  955.  
  956.   ╖  Evans & Sutherland OpenGL
  957.  
  958.      The latter was distributed by Portable Graphics, and was a straight
  959.      Linux port of the OpenGL reference software implementation, with a
  960.      link kit for an older revision of the XFree86 X servers.  Portable
  961.      Graphics never promised hardware support. To my knowledge, this
  962.      product is no longer available.
  963.  
  964.   The other two promised support for hardware accelerators, but both are
  965.   tied to proprietary ports of the X server, and both do not support any
  966.   3D acceleration, as far as I know.
  967.  
  968.   10.7.  How about GLUT?
  969.  
  970.   Mark Kilgard's GLUT distribution is a very good place to get sample
  971.   applications plus a lot of useful utilities.  You will find it at
  972.   reality.sgi.com/mjk_asd/glut3/, and you should get it anyway. The
  973.   current release is GLUT 3.4.
  974.  
  975.   However, as GLUT handles double buffers, windows, events, and other
  976.   operations closely tied to hardware and operating system, a Voodoo-
  977.   GLUT requires several specific modifications.  There is an alpha
  978.   release available as part of the most recent Mesa distribution (David
  979.   Bucciarelli, Henri Fousse).
  980.  
  981.   11.  FAQ: But Quake?
  982.  
  983.   11.1.  What about the Quake GL?
  984.  
  985.   The DLL released by 3Dfx is only available for Windows. It supports a
  986.   Quake-specific a subset of OpenGL only (see
  987.   http://www.cs.unc.edu/~martin/3dfx.html for an inofficial list of
  988.   supported code paths).  No, this DLL is not ported to Linux.  No,
  989.   there is no Glide based Quake version, not even for Windows. I have no
  990.   information about a Linux glQuake.
  991.  
  992.   12.  FAQ: Troubleshooting?
  993.  
  994.   12.1.  Has this hardware been tested?
  995.  
  996.   See hardware requirements above, there is a list of hardware that has
  997.   been found to work.
  998.  
  999.   12.2.  Failed to change I/O privilege?
  1000.  
  1001.   You need to be root, or setuid your application to run a Glide based
  1002.   application.  For DMA, the driver accesses /dev/mem, which is not
  1003.   writeable for anybody but root, with good reasons. See the README in
  1004.   the Glide distribution for Linux.
  1005.  
  1006.   12.3.  Does it work without root privilege?
  1007.  
  1008.   There are compelling case where the setuid requirement is a problem,
  1009.   obviously. There are currently solutions in preparation, which require
  1010.   changes to the library internals itself.
  1011.  
  1012.   12.4.  Displayed images looks awful (single screen)?
  1013.  
  1014.   If you are using the analog pass through configuration, the common
  1015.   SVGA or X11 display might look pretty bad.  You could try to get a
  1016.   better connector cable than the one provided with the accelerator
  1017.   board (the ones delivered with the Diamond Monster 3D are reportedly
  1018.   worse then the one accompanying the Orchid Righteous 3D), but up to a
  1019.   degree there will inevitably be signal loss with an additional
  1020.   transmission added.
  1021.  
  1022.   If the 640x480 full screen image created by the accelerator board does
  1023.   look awful, this might indicate a real hardware problem. You will have
  1024.   to contact the board manufacturer, not 3Dfx for details, as the
  1025.   quality of the video signal has nothing to do with the accelerator -
  1026.   the board manufacturer chooses the RAMDAC, output drivers, and other
  1027.   components responsible.
  1028.  
  1029.   12.5.  The last frame is still there (single or dual screen)?
  1030.  
  1031.   You terminated your application with Ctrl-C, or it did not exit
  1032.   normally. The accelerator board will dutifully provide the current
  1033.   content of the framebuffer as a video signal unless told otherwise.
  1034.  
  1035.   12.6.  Powersave kicks in (dual screen)?
  1036.  
  1037.   When you application terminates in dual screen setups, the accelerator
  1038.   board does not provide video output any longer. Thus powersave kicks
  1039.   each time. To avoid this, use
  1040.  
  1041.   ______________________________________________________________________
  1042.   setenv SST_DUALSCREEN 1
  1043.   ______________________________________________________________________
  1044.  
  1045.   12.7.  My machine seem to lock (X11, single screen)?
  1046.  
  1047.   If you are running X when calling a Glide application, you probably
  1048.   moved the mouse out of the window, and the keyboard inputs do not
  1049.   reach the application anymore.
  1050.  
  1051.   If you application is supposed to run concurrently with X11, it is
  1052.   recommend to expose a full screen window, or use the XGrabPointer and
  1053.   XGrabServer functions to redirect all inputs to the application while
  1054.   the X server cannot access the display. Note that grabbing all input
  1055.   with XGrabPointer and XGrabServer does not qualify as well-behaved
  1056.   application, and that your program might block the entire system.
  1057.  
  1058.   If you experience this problem without running X, be sure that there
  1059.   is no hardware conflict (see below).
  1060.  
  1061.   12.8.  My machine locks (single or dual screen)?
  1062.  
  1063.   If the system definitely does not respond to any inputs (you are
  1064.   running two displays and know about the loss of focus), you might
  1065.   experience a more or less subtle hardware conflict.  See installation
  1066.   troubleshooting section for details.
  1067.  
  1068.   If there is no obvious address conflict, there might still be other
  1069.   problems (below). If you are writing your own code the most common
  1070.   reason for locking is that you didn't snap your vertices. See the
  1071.   section on snapping in the Glide documentation.
  1072.  
  1073.   12.9.  My machine locks (used with S3 VGA board)?
  1074.  
  1075.   It is possible you have a problem with memory region overlap specific
  1076.   to S3. There is some info and a patch to the so-called S3 problem in
  1077.   the 3Dfx web site, but these apply to Windows only. To my
  1078.   understanding, the cause of the problem is that some S3 boards (older
  1079.   revisions of Diamond Stealth S3 968) reserve more memory space than
  1080.   actually used, thus the Voodoo Graphics (tm) has to be mapped to a
  1081.   different location. However, this has not been reported as a problem
  1082.   with Linux, and might be Windows-specific.
  1083.  
  1084.   12.10.  No address conflict, but locks anyway?
  1085.  
  1086.   If you happen to use a motherboard with non-standard or incomplete PCI
  1087.   support, you could try to shuffle the boards a bit. I am running an
  1088.   ASUS TP4XE that has that non-standard modified "Media Slot", i.e. PCI
  1089.   slot4 with additional connector for ASUS-manufactured SCSI/Sound combo
  1090.   boards, and I experienced severe problems while running a Diamond
  1091.   Monster 3D in that slot. The system operates flawlessly since I put
  1092.   the board in one of the regular slots.
  1093.  
  1094.   12.11.  Compile/link error: grSstWinOpen()?
  1095.  
  1096.   As Linux Glide will be version 2.4, this error should not occur. This
  1097.   function was not available in Glide and thus Linux Glide 2.2;; the
  1098.   latter has never been released to the public.
  1099.  
  1100.   12.12.  Compile/link error: grSstOpen()?
  1101.  
  1102.   Your application's source is based on Glide 2.2, and this function was
  1103.   removed in Glide 2.3;. It is not available anymore and so may not be
  1104.   used with Linux Glide 2.4. Modify your application to use the function
  1105.   grSstWinOpen instead.
  1106.  
  1107.   As the Linux Glide integration with Mesa was based on Glide 2.2
  1108.   originally, earlier versions of Mesa might produce compile time
  1109.   errors. The Mesa-2.3b3 release has been patched to be used with Linux
  1110.   Glide 2.3.1; make sure to get both the distribution and the patches,
  1111.   or, preferably, a later revision of Mesa.
  1112.  
  1113.   12.13.  Cannot open shared object file?
  1114.  
  1115.   ______________________________________________________________________
  1116.   test25: error in loading shared libraries
  1117.   libglide2x.so: cannot open shared object file: No such file or directory
  1118.   ______________________________________________________________________
  1119.  
  1120.   If, for whatever reasons, you have a binary lying around compiled for
  1121.   a different revision of Linux Glide, or if there is an inconsistency
  1122.   in your ldconfig setup, the program will not find the shared library.
  1123.   Check the name (e.g. libglide2x.so) and make sure that the proper
  1124.   flags are used when compiling and linking - e.g. -lglide might not
  1125.   work with the default installation.
  1126.  
  1127.   Note that the naming of Linux Glide revisions follows the conventions
  1128.   used in the 3Dfx Windows distribution, not the conventions common for
  1129.   Linux.
  1130.  
  1131.   12.14.  Mesa compilation problems
  1132.  
  1133.   Be sure to set  USE_GLIDE_FULLSCREEN in fxmesa.h. Check whether the
  1134.   linkage options (e.g. -lglide) match the name of the Linux Glide
  1135.   library installed (e.g. -lglide2x instead).  Be sure to use the
  1136.   patches to Mesa-2.3b3 or a later release, as all Mesa releases up to
  1137.   2.3b3 were based on Linux Glide 2.2. See above.
  1138.  
  1139.   12.15.  Mesa runs, but does not access the board?
  1140.  
  1141.   Be sure that you recompiled all the libraries (including the toolkits
  1142.   the demo programs use - remember that GLUT does not yet support Voodoo
  1143.   Graphics (tm)), and that you removed the older libraries, run
  1144.   ldconfig, and/or set your LD_LIBRARY_PATH properly.  Mesa supports
  1145.   several drivers in parallel (you could use X11 SHM, off screen
  1146.   rendering, and Mesa Voodoo at the same time), and you might have to
  1147.   create and switch contexts explicitely (see MakeCurrent function) if
  1148.   the Voodoo Graphics (tm) isn't chosen by default.
  1149.  
  1150.